using System;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;

namespace UnitTesting.Fixturing
{
	public interface IWithConstructor
	{
		void StrictVerbose();
		void LooseVerbose();
		void StrictParamCount(int paramCount);
		void LooseParamCount(int paramCount);
		void ParamTypes(params Type[] types);
		void Conditional(Func<ConstructorInfo[], ConstructorInfo> condition);

		[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Default")]
		void Default();
	}
}